<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.11"/>
<title>Kinetis Bootloader Host: blfwk::Updater Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
  $(document).ready(initResizable);
  $(window).load(resizeHeight);
</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
  $(document).ready(function() { init_search(); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectlogo"><img alt="Logo" src="nxp_logo_small.png"/></td>
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">Kinetis Bootloader Host
   &#160;<span id="projectnumber">2.0.0</span>
   </div>
   <div id="projectbrief">Host Tools for Kinetis devices</div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.11 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Introduction</span></a></li>
      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
      <li><a href="modules.html"><span>Modules</span></a></li>
      <li>
        <div id="MSearchBox" class="MSearchBoxInactive">
        <span class="left">
          <img id="MSearchSelect" src="search/mag_sel.png"
               onmouseover="return searchBox.OnSearchSelectShow()"
               onmouseout="return searchBox.OnSearchSelectHide()"
               alt=""/>
          <input type="text" id="MSearchField" value="Search" accesskey="S"
               onfocus="searchBox.OnSearchFieldFocus(true)" 
               onblur="searchBox.OnSearchFieldFocus(false)" 
               onkeyup="searchBox.OnSearchFieldChange(event)"/>
          </span><span class="right">
            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
          </span>
        </div>
      </li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
      <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
      <li><a href="inherits.html"><span>Class&#160;Hierarchy</span></a></li>
      <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
    </ul>
  </div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('classblfwk_1_1_updater.html','');});
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div class="header">
  <div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="classblfwk_1_1_updater-members.html">List of all members</a>  </div>
  <div class="headertitle">
<div class="title">blfwk::Updater Class Reference</div>  </div>
</div><!--header-->
<div class="contents">

<p>Update class contains the functionality necessary to update the firmware on a device running <a class="el" href="classblfwk_1_1_bootloader.html" title="Represents the host bootloader. ">Bootloader</a>.  
 <a href="classblfwk_1_1_updater.html#details">More...</a></p>

<p><code>#include &lt;<a class="el" href="_updater_8h_source.html">Updater.h</a>&gt;</code></p>
<div id="dynsection-0" onclick="return toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;">
  <img id="dynsection-0-trigger" src="closed.png" alt="+"/> Inheritance diagram for blfwk::Updater:</div>
<div id="dynsection-0-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-0-content" class="dyncontent" style="display:none;">
<div class="center"><iframe scrolling="no" frameborder="0" src="classblfwk_1_1_updater__inherit__graph.svg" width="132" height="112"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
</div>
<center><span class="legend">[<a target="top" href="graph_legend.html">legend</a>]</span></center></div>
<div id="dynsection-1" onclick="return toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;">
  <img id="dynsection-1-trigger" src="closed.png" alt="+"/> Collaboration diagram for blfwk::Updater:</div>
<div id="dynsection-1-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-1-content" class="dyncontent" style="display:none;">
<div class="center"><iframe scrolling="no" frameborder="0" src="classblfwk_1_1_updater__coll__graph.svg" width="1946" height="522"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
</div>
<center><span class="legend">[<a target="top" href="graph_legend.html">legend</a>]</span></center></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a67da48e511ad4ea35e692e6219d57bbb"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a67da48e511ad4ea35e692e6219d57bbb"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classblfwk_1_1_updater.html#a67da48e511ad4ea35e692e6219d57bbb">Updater</a> (const <a class="el" href="classblfwk_1_1_peripheral.html#structblfwk_1_1_peripheral_1_1_peripheral_config_data">Peripheral::PeripheralConfigData</a> &amp;config)</td></tr>
<tr class="memdesc:a67da48e511ad4ea35e692e6219d57bbb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default constructor. <br /></td></tr>
<tr class="separator:a67da48e511ad4ea35e692e6219d57bbb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2f8434a97a4f3d3c716bb05abb20621e"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a2f8434a97a4f3d3c716bb05abb20621e"></a>
virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classblfwk_1_1_updater.html#a2f8434a97a4f3d3c716bb05abb20621e">~Updater</a> ()</td></tr>
<tr class="memdesc:a2f8434a97a4f3d3c716bb05abb20621e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Destructor. <br /></td></tr>
<tr class="separator:a2f8434a97a4f3d3c716bb05abb20621e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab4ea7e9fbbbfa1a5116b4d167d2b348a"><td class="memItemLeft" align="right" valign="top">uint32_vector_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classblfwk_1_1_updater.html#ab4ea7e9fbbbfa1a5116b4d167d2b348a">getProperty</a> (<a class="el" href="structblfwk_1_1property__t.html">property_t</a> tag)</td></tr>
<tr class="memdesc:ab4ea7e9fbbbfa1a5116b4d167d2b348a"><td class="mdescLeft">&#160;</td><td class="mdescRight">get Device's property by using get-property command.  <a href="#ab4ea7e9fbbbfa1a5116b4d167d2b348a">More...</a><br /></td></tr>
<tr class="separator:ab4ea7e9fbbbfa1a5116b4d167d2b348a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4d96fbd3cac558d611f69c7b878513fd"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classblfwk_1_1_updater.html#a4d96fbd3cac558d611f69c7b878513fd">getSectorSize</a> ()</td></tr>
<tr class="memdesc:a4d96fbd3cac558d611f69c7b878513fd"><td class="mdescLeft">&#160;</td><td class="mdescRight">get Device's flash sector size.  <a href="#a4d96fbd3cac558d611f69c7b878513fd">More...</a><br /></td></tr>
<tr class="separator:a4d96fbd3cac558d611f69c7b878513fd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae65090535c767f3fc948ba737d37ee52"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classblfwk_1_1_updater.html#ae65090535c767f3fc948ba737d37ee52">getFlshSize</a> ()</td></tr>
<tr class="memdesc:ae65090535c767f3fc948ba737d37ee52"><td class="mdescLeft">&#160;</td><td class="mdescRight">get Device's flash size.  <a href="#ae65090535c767f3fc948ba737d37ee52">More...</a><br /></td></tr>
<tr class="separator:ae65090535c767f3fc948ba737d37ee52"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1928c1fbff8fca3e32c40f4242d23dae"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classblfwk_1_1_updater.html#a1928c1fbff8fca3e32c40f4242d23dae">eraseFlashRegion</a> (uint32_t start, uint32_t length)</td></tr>
<tr class="memdesc:a1928c1fbff8fca3e32c40f4242d23dae"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="classblfwk_1_1_execute.html" title="Represents the bootloader Execute command. ">Execute</a> the <a class="el" href="classblfwk_1_1_flash_erase_region.html" title="Represents the bootloader Flash Erase command. ">FlashEraseRegion</a> bootloader command.  <a href="#a1928c1fbff8fca3e32c40f4242d23dae">More...</a><br /></td></tr>
<tr class="separator:a1928c1fbff8fca3e32c40f4242d23dae"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a854ab7c72d51fda1ee02a5412e5b9aa5"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classblfwk_1_1_updater.html#a854ab7c72d51fda1ee02a5412e5b9aa5">eraseFlashAll</a> (uint32_t memoryId)</td></tr>
<tr class="memdesc:a854ab7c72d51fda1ee02a5412e5b9aa5"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="classblfwk_1_1_execute.html" title="Represents the bootloader Execute command. ">Execute</a> the <a class="el" href="classblfwk_1_1_flash_erase_all.html" title="Represents the bootloader Flash Erase All command. ">FlashEraseAll</a> bootloader command.  <a href="#a854ab7c72d51fda1ee02a5412e5b9aa5">More...</a><br /></td></tr>
<tr class="separator:a854ab7c72d51fda1ee02a5412e5b9aa5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4ea60db0dec85bba7f3231daea7b342a"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classblfwk_1_1_updater.html#a4ea60db0dec85bba7f3231daea7b342a">programOnce</a> (uint32_t index, uint32_t byteCount, string data)</td></tr>
<tr class="memdesc:a4ea60db0dec85bba7f3231daea7b342a"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="classblfwk_1_1_execute.html" title="Represents the bootloader Execute command. ">Execute</a> the <a class="el" href="classblfwk_1_1_flash_program_once.html" title="Represents the bootloader Flash Program Once command. ">FlashProgramOnce</a> bootloader command.  <a href="#a4ea60db0dec85bba7f3231daea7b342a">More...</a><br /></td></tr>
<tr class="separator:a4ea60db0dec85bba7f3231daea7b342a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_classblfwk_1_1_bootloader"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classblfwk_1_1_bootloader')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classblfwk_1_1_bootloader.html">blfwk::Bootloader</a></td></tr>
<tr class="memitem:a4d576bc36952fcec62139e4b14446f31 inherit pub_methods_classblfwk_1_1_bootloader"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a4d576bc36952fcec62139e4b14446f31"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classblfwk_1_1_bootloader.html#a4d576bc36952fcec62139e4b14446f31">Bootloader</a> ()</td></tr>
<tr class="memdesc:a4d576bc36952fcec62139e4b14446f31 inherit pub_methods_classblfwk_1_1_bootloader"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default Constructor for <a class="el" href="classblfwk_1_1_simulator.html" title="Represents the host bootloader. ">Simulator</a>. <br /></td></tr>
<tr class="separator:a4d576bc36952fcec62139e4b14446f31 inherit pub_methods_classblfwk_1_1_bootloader"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a04f46665c081101a75cf3b2320b864be inherit pub_methods_classblfwk_1_1_bootloader"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a04f46665c081101a75cf3b2320b864be"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classblfwk_1_1_bootloader.html#a04f46665c081101a75cf3b2320b864be">Bootloader</a> (const <a class="el" href="classblfwk_1_1_peripheral.html#structblfwk_1_1_peripheral_1_1_peripheral_config_data">Peripheral::PeripheralConfigData</a> &amp;config)</td></tr>
<tr class="memdesc:a04f46665c081101a75cf3b2320b864be inherit pub_methods_classblfwk_1_1_bootloader"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor. <br /></td></tr>
<tr class="separator:a04f46665c081101a75cf3b2320b864be inherit pub_methods_classblfwk_1_1_bootloader"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a970f16331dc25948fd59d269dccc5e4a inherit pub_methods_classblfwk_1_1_bootloader"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a970f16331dc25948fd59d269dccc5e4a"></a>
virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classblfwk_1_1_bootloader.html#a970f16331dc25948fd59d269dccc5e4a">~Bootloader</a> ()</td></tr>
<tr class="memdesc:a970f16331dc25948fd59d269dccc5e4a inherit pub_methods_classblfwk_1_1_bootloader"><td class="mdescLeft">&#160;</td><td class="mdescRight">Destructor. <br /></td></tr>
<tr class="separator:a970f16331dc25948fd59d269dccc5e4a inherit pub_methods_classblfwk_1_1_bootloader"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a34979a4bffa66b56cc7323ea44f9f834 inherit pub_methods_classblfwk_1_1_bootloader"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classblfwk_1_1_bootloader.html#a34979a4bffa66b56cc7323ea44f9f834">inject</a> (<a class="el" href="classblfwk_1_1_command.html">Command</a> &amp;cmd)</td></tr>
<tr class="memdesc:a34979a4bffa66b56cc7323ea44f9f834 inherit pub_methods_classblfwk_1_1_bootloader"><td class="mdescLeft">&#160;</td><td class="mdescRight">Inject a command into the bootloader.  <a href="#a34979a4bffa66b56cc7323ea44f9f834">More...</a><br /></td></tr>
<tr class="separator:a34979a4bffa66b56cc7323ea44f9f834 inherit pub_methods_classblfwk_1_1_bootloader"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac249931195a33bfe4573cd2256046ee8 inherit pub_methods_classblfwk_1_1_bootloader"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ac249931195a33bfe4573cd2256046ee8"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classblfwk_1_1_bootloader.html#ac249931195a33bfe4573cd2256046ee8">flush</a> ()</td></tr>
<tr class="memdesc:ac249931195a33bfe4573cd2256046ee8 inherit pub_methods_classblfwk_1_1_bootloader"><td class="mdescLeft">&#160;</td><td class="mdescRight">Flush state. <br /></td></tr>
<tr class="separator:ac249931195a33bfe4573cd2256046ee8 inherit pub_methods_classblfwk_1_1_bootloader"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0af861cd04b89f416ceeef198a6b3e22 inherit pub_methods_classblfwk_1_1_bootloader"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a0af861cd04b89f416ceeef198a6b3e22"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classblfwk_1_1_bootloader.html#a0af861cd04b89f416ceeef198a6b3e22">execute</a> (uint32_t entry_point, uint32_t param=0, uint32_t stack_pointer=0)</td></tr>
<tr class="memdesc:a0af861cd04b89f416ceeef198a6b3e22 inherit pub_methods_classblfwk_1_1_bootloader"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="classblfwk_1_1_execute.html" title="Represents the bootloader Execute command. ">Execute</a> the execute command. <br /></td></tr>
<tr class="separator:a0af861cd04b89f416ceeef198a6b3e22 inherit pub_methods_classblfwk_1_1_bootloader"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a889c54a8c2a7db7f6cf0fc10dd8ffcec inherit pub_methods_classblfwk_1_1_bootloader"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a889c54a8c2a7db7f6cf0fc10dd8ffcec"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classblfwk_1_1_bootloader.html#a889c54a8c2a7db7f6cf0fc10dd8ffcec">reset</a> ()</td></tr>
<tr class="memdesc:a889c54a8c2a7db7f6cf0fc10dd8ffcec inherit pub_methods_classblfwk_1_1_bootloader"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="classblfwk_1_1_execute.html" title="Represents the bootloader Execute command. ">Execute</a> the reset command. <br /></td></tr>
<tr class="separator:a889c54a8c2a7db7f6cf0fc10dd8ffcec inherit pub_methods_classblfwk_1_1_bootloader"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abd0b4bd84fa8cd78ed1d432cd5f465c4 inherit pub_methods_classblfwk_1_1_bootloader"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="abd0b4bd84fa8cd78ed1d432cd5f465c4"></a>
<a class="el" href="group__qspi__driver.html#unionstandard__version__t">standard_version_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classblfwk_1_1_bootloader.html#abd0b4bd84fa8cd78ed1d432cd5f465c4">getVersion</a> ()</td></tr>
<tr class="memdesc:abd0b4bd84fa8cd78ed1d432cd5f465c4 inherit pub_methods_classblfwk_1_1_bootloader"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="classblfwk_1_1_execute.html" title="Represents the bootloader Execute command. ">Execute</a> the get-property(current-version) command. <br /></td></tr>
<tr class="separator:abd0b4bd84fa8cd78ed1d432cd5f465c4 inherit pub_methods_classblfwk_1_1_bootloader"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac9bb137646fffa3ec6bfa3f5dedb0a68 inherit pub_methods_classblfwk_1_1_bootloader"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ac9bb137646fffa3ec6bfa3f5dedb0a68"></a>
uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classblfwk_1_1_bootloader.html#ac9bb137646fffa3ec6bfa3f5dedb0a68">getSecurityState</a> ()</td></tr>
<tr class="memdesc:ac9bb137646fffa3ec6bfa3f5dedb0a68 inherit pub_methods_classblfwk_1_1_bootloader"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="classblfwk_1_1_execute.html" title="Represents the bootloader Execute command. ">Execute</a> the get-property(flash-security-state) command. <br /></td></tr>
<tr class="separator:ac9bb137646fffa3ec6bfa3f5dedb0a68 inherit pub_methods_classblfwk_1_1_bootloader"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aab5b8a68398d12a6981454a757ca8f2d inherit pub_methods_classblfwk_1_1_bootloader"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aab5b8a68398d12a6981454a757ca8f2d"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classblfwk_1_1_bootloader.html#aab5b8a68398d12a6981454a757ca8f2d">ping</a> (int retries, unsigned int delay, int comSpeed)</td></tr>
<tr class="memdesc:aab5b8a68398d12a6981454a757ca8f2d inherit pub_methods_classblfwk_1_1_bootloader"><td class="mdescLeft">&#160;</td><td class="mdescRight">Send a ping if applicable. <br /></td></tr>
<tr class="separator:aab5b8a68398d12a6981454a757ca8f2d inherit pub_methods_classblfwk_1_1_bootloader"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad4979ed9ee49244cee56ede994732a38 inherit pub_methods_classblfwk_1_1_bootloader"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad4979ed9ee49244cee56ede994732a38"></a>
<a class="el" href="classblfwk_1_1_packetizer.html">Packetizer</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classblfwk_1_1_bootloader.html#ad4979ed9ee49244cee56ede994732a38">getPacketizer</a> () const </td></tr>
<tr class="memdesc:ad4979ed9ee49244cee56ede994732a38 inherit pub_methods_classblfwk_1_1_bootloader"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the host packetizer. <br /></td></tr>
<tr class="separator:ad4979ed9ee49244cee56ede994732a38 inherit pub_methods_classblfwk_1_1_bootloader"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="member-group"></a>
Update API.</h2></td></tr>
<tr class="memitem:a5bf1e93496727ffe94e232d37ccd262d"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a5bf1e93496727ffe94e232d37ccd262d"></a>
typedef void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classblfwk_1_1_updater.html#a5bf1e93496727ffe94e232d37ccd262d">progress_callback_t</a>) (<a class="el" href="structblfwk_1_1updater__operation__t.html">updater_operation_t</a> *op)</td></tr>
<tr class="memdesc:a5bf1e93496727ffe94e232d37ccd262d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Type for the progress callback routine. <br /></td></tr>
<tr class="separator:a5bf1e93496727ffe94e232d37ccd262d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9f15b1f352b0d2326a49f9395435c109"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a9f15b1f352b0d2326a49f9395435c109"></a>
<a class="el" href="structblfwk_1_1updater__operation__t.html">updater_operation_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classblfwk_1_1_updater.html#a9f15b1f352b0d2326a49f9395435c109">m_operation</a></td></tr>
<tr class="memdesc:a9f15b1f352b0d2326a49f9395435c109"><td class="mdescLeft">&#160;</td><td class="mdescRight">Struct used to monitor the Operation progress. <br /></td></tr>
<tr class="separator:a9f15b1f352b0d2326a49f9395435c109"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac521d144b59ae9d448097c0d79c8a791"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classblfwk_1_1_updater.html#ac521d144b59ae9d448097c0d79c8a791">setCallback</a> (<a class="el" href="classblfwk_1_1_updater.html#a5bf1e93496727ffe94e232d37ccd262d">progress_callback_t</a> callback)</td></tr>
<tr class="memdesc:ac521d144b59ae9d448097c0d79c8a791"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the user-defined function to call on progress events.  <a href="#ac521d144b59ae9d448097c0d79c8a791">More...</a><br /></td></tr>
<tr class="separator:ac521d144b59ae9d448097c0d79c8a791"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a48551f48ea23daff01f931c0196474de"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classblfwk_1_1_updater.html#a48551f48ea23daff01f931c0196474de">registerCallback</a> (void(*callback)(int, int, int), bool *abort)</td></tr>
<tr class="memdesc:a48551f48ea23daff01f931c0196474de"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set callback for progress and abort control.  <a href="#a48551f48ea23daff01f931c0196474de">More...</a><br /></td></tr>
<tr class="separator:a48551f48ea23daff01f931c0196474de"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3abbca2423b22adbf9d99f0be190d579"><td class="memItemLeft" align="right" valign="top">status_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classblfwk_1_1_updater.html#a3abbca2423b22adbf9d99f0be190d579">flashFirmware</a> (const char *filename, uint32_t base_address)</td></tr>
<tr class="memdesc:a3abbca2423b22adbf9d99f0be190d579"><td class="mdescLeft">&#160;</td><td class="mdescRight">Program flash on the device.  <a href="#a3abbca2423b22adbf9d99f0be190d579">More...</a><br /></td></tr>
<tr class="separator:a3abbca2423b22adbf9d99f0be190d579"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a50a5dca97c2530313cf23ad14b420777"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classblfwk_1_1_updater.html#a50a5dca97c2530313cf23ad14b420777">eraseAllUnsecure</a> ()</td></tr>
<tr class="memdesc:a50a5dca97c2530313cf23ad14b420777"><td class="mdescLeft">&#160;</td><td class="mdescRight">Erase all flash blocks and release MCU security.  <a href="#a50a5dca97c2530313cf23ad14b420777">More...</a><br /></td></tr>
<tr class="separator:a50a5dca97c2530313cf23ad14b420777"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0c21eea1ab3f9571863f191aff972505"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classblfwk_1_1_updater.html#a0c21eea1ab3f9571863f191aff972505">unlock</a> (string backdoor_key)</td></tr>
<tr class="memdesc:a0c21eea1ab3f9571863f191aff972505"><td class="mdescLeft">&#160;</td><td class="mdescRight">Release security using BackdoorKey.  <a href="#a0c21eea1ab3f9571863f191aff972505">More...</a><br /></td></tr>
<tr class="separator:a0c21eea1ab3f9571863f191aff972505"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ada1ce18df25c54bd13e5ec13d686ca49"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classblfwk_1_1_updater.html#ada1ce18df25c54bd13e5ec13d686ca49">isCommandSupported</a> (const <a class="el" href="structblfwk_1_1cmd__t.html">cmd_t</a> &amp;command)</td></tr>
<tr class="memdesc:ada1ce18df25c54bd13e5ec13d686ca49"><td class="mdescLeft">&#160;</td><td class="mdescRight">Checks if Kinetis <a class="el" href="classblfwk_1_1_bootloader.html" title="Represents the host bootloader. ">Bootloader</a> device supports a given command.  <a href="#ada1ce18df25c54bd13e5ec13d686ca49">More...</a><br /></td></tr>
<tr class="separator:ada1ce18df25c54bd13e5ec13d686ca49"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="member-group"></a>
Bootloader commands</h2></td></tr>
<tr class="memitem:a657c051ba4d2a611d0d00942b2387b60"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a657c051ba4d2a611d0d00942b2387b60"></a>
uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classblfwk_1_1_updater.html#a657c051ba4d2a611d0d00942b2387b60">m_base_address</a></td></tr>
<tr class="memdesc:a657c051ba4d2a611d0d00942b2387b60"><td class="mdescLeft">&#160;</td><td class="mdescRight">Base address of the image. <br /></td></tr>
<tr class="separator:a657c051ba4d2a611d0d00942b2387b60"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7bb6418fc484b6f35b5da8ba1ebb367f"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a7bb6418fc484b6f35b5da8ba1ebb367f"></a>
uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classblfwk_1_1_updater.html#a7bb6418fc484b6f35b5da8ba1ebb367f">m_sector_size</a></td></tr>
<tr class="memdesc:a7bb6418fc484b6f35b5da8ba1ebb367f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sector size of the flash on the device. <br /></td></tr>
<tr class="separator:a7bb6418fc484b6f35b5da8ba1ebb367f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae084ba790558d6ef32869fa6ecbfd0b4"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ae084ba790558d6ef32869fa6ecbfd0b4"></a>
uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classblfwk_1_1_updater.html#ae084ba790558d6ef32869fa6ecbfd0b4">m_flashStart</a></td></tr>
<tr class="memdesc:ae084ba790558d6ef32869fa6ecbfd0b4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Start address of the flash on the device. <br /></td></tr>
<tr class="separator:ae084ba790558d6ef32869fa6ecbfd0b4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a77e2324d84433e1deb33556f43188bba"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a77e2324d84433e1deb33556f43188bba"></a>
uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classblfwk_1_1_updater.html#a77e2324d84433e1deb33556f43188bba">m_flashSize</a></td></tr>
<tr class="memdesc:a77e2324d84433e1deb33556f43188bba"><td class="mdescLeft">&#160;</td><td class="mdescRight">The flash size (in bytes) of the device. <br /></td></tr>
<tr class="separator:a77e2324d84433e1deb33556f43188bba"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af88ab43975fa62a2e44ed3a8e9708698"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af88ab43975fa62a2e44ed3a8e9708698"></a>
<a class="el" href="classblfwk_1_1_source_file.html">SourceFile</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classblfwk_1_1_updater.html#af88ab43975fa62a2e44ed3a8e9708698">m_sourceFile</a></td></tr>
<tr class="memdesc:af88ab43975fa62a2e44ed3a8e9708698"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="classblfwk_1_1_source_file.html" title="Abstract base class for a source file containing executable code. ">SourceFile</a> object. <br /></td></tr>
<tr class="separator:af88ab43975fa62a2e44ed3a8e9708698"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aca469b34aa17b09f68cba8192ae3eda0"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aca469b34aa17b09f68cba8192ae3eda0"></a>
<a class="el" href="classblfwk_1_1_updater.html#a5bf1e93496727ffe94e232d37ccd262d">progress_callback_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classblfwk_1_1_updater.html#aca469b34aa17b09f68cba8192ae3eda0">m_progressCallback</a></td></tr>
<tr class="memdesc:aca469b34aa17b09f68cba8192ae3eda0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Callback used to report update progress. <br /></td></tr>
<tr class="separator:aca469b34aa17b09f68cba8192ae3eda0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aafcbe72624e4193f2ce458ffe38ecf9b"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aafcbe72624e4193f2ce458ffe38ecf9b"></a>
<a class="el" href="classblfwk_1_1_progress.html">Progress</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classblfwk_1_1_updater.html#aafcbe72624e4193f2ce458ffe38ecf9b">m_progress</a></td></tr>
<tr class="memdesc:aafcbe72624e4193f2ce458ffe38ecf9b"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="classblfwk_1_1_progress.html" title="Contains the callback function for progress and abort phase. ">Progress</a> control. <br /></td></tr>
<tr class="separator:aafcbe72624e4193f2ce458ffe38ecf9b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af124c4ded6af95b694cebe0d8d7c2230"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classblfwk_1_1_updater.html#af124c4ded6af95b694cebe0d8d7c2230">writeMemory</a> (<a class="el" href="classblfwk_1_1_data_source_1_1_segment.html">DataSource::Segment</a> *segment)</td></tr>
<tr class="memdesc:af124c4ded6af95b694cebe0d8d7c2230"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="classblfwk_1_1_execute.html" title="Represents the bootloader Execute command. ">Execute</a> the write-memory bootloader command.  <a href="#af124c4ded6af95b694cebe0d8d7c2230">More...</a><br /></td></tr>
<tr class="separator:af124c4ded6af95b694cebe0d8d7c2230"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2acb3e081f988d718fa4a816d2b66e08"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classblfwk_1_1_updater.html#a2acb3e081f988d718fa4a816d2b66e08">writeMemory</a> (uint32_t address, const uchar_vector_t &amp;data)</td></tr>
<tr class="memdesc:a2acb3e081f988d718fa4a816d2b66e08"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="classblfwk_1_1_execute.html" title="Represents the bootloader Execute command. ">Execute</a> the write-memory bootloader command.  <a href="#a2acb3e081f988d718fa4a816d2b66e08">More...</a><br /></td></tr>
<tr class="separator:a2acb3e081f988d718fa4a816d2b66e08"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac45be28496e810ef1aa22b071c0e3cff"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ac45be28496e810ef1aa22b071c0e3cff"></a>
status_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classblfwk_1_1_updater.html#ac45be28496e810ef1aa22b071c0e3cff">flashFromSourceFile</a> ()</td></tr>
<tr class="memdesc:ac45be28496e810ef1aa22b071c0e3cff"><td class="mdescLeft">&#160;</td><td class="mdescRight">Program flash procedure for <a class="el" href="classblfwk_1_1_source_file.html" title="Abstract base class for a source file containing executable code. ">SourceFile</a> types. <br /></td></tr>
<tr class="separator:ac45be28496e810ef1aa22b071c0e3cff"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab78e151bf135bb1026768844504356fb"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ab78e151bf135bb1026768844504356fb"></a>
status_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classblfwk_1_1_updater.html#ab78e151bf135bb1026768844504356fb">flashFromSBFile</a> (const char *filename)</td></tr>
<tr class="memdesc:ab78e151bf135bb1026768844504356fb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Program flash procedure for SB files. <br /></td></tr>
<tr class="separator:ab78e151bf135bb1026768844504356fb"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="inherited"></a>
Additional Inherited Members</h2></td></tr>
<tr class="inherit_header pro_attribs_classblfwk_1_1_bootloader"><td colspan="2" onclick="javascript:toggleInherit('pro_attribs_classblfwk_1_1_bootloader')"><img src="closed.png" alt="-"/>&#160;Protected Attributes inherited from <a class="el" href="classblfwk_1_1_bootloader.html">blfwk::Bootloader</a></td></tr>
<tr class="memitem:aa27c01ea4b6a3e12091088e8b83e95f0 inherit pro_attribs_classblfwk_1_1_bootloader"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa27c01ea4b6a3e12091088e8b83e95f0"></a>
<a class="el" href="classblfwk_1_1_packetizer.html">Packetizer</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classblfwk_1_1_bootloader.html#aa27c01ea4b6a3e12091088e8b83e95f0">m_hostPacketizer</a></td></tr>
<tr class="memdesc:aa27c01ea4b6a3e12091088e8b83e95f0 inherit pro_attribs_classblfwk_1_1_bootloader"><td class="mdescLeft">&#160;</td><td class="mdescRight">Packet interface to send commands on. <br /></td></tr>
<tr class="separator:aa27c01ea4b6a3e12091088e8b83e95f0 inherit pro_attribs_classblfwk_1_1_bootloader"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af44eb458e050e54155a6955ce13841cf inherit pro_attribs_classblfwk_1_1_bootloader"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af44eb458e050e54155a6955ce13841cf"></a>
<a class="el" href="group__logging.html#class_file_logger">FileLogger</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classblfwk_1_1_bootloader.html#af44eb458e050e54155a6955ce13841cf">m_logger</a></td></tr>
<tr class="memdesc:af44eb458e050e54155a6955ce13841cf inherit pro_attribs_classblfwk_1_1_bootloader"><td class="mdescLeft">&#160;</td><td class="mdescRight">Singleton logger instance. <br /></td></tr>
<tr class="separator:af44eb458e050e54155a6955ce13841cf inherit pro_attribs_classblfwk_1_1_bootloader"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Update class contains the functionality necessary to update the firmware on a device running <a class="el" href="classblfwk_1_1_bootloader.html" title="Represents the host bootloader. ">Bootloader</a>. </p>
<p>The purpose of this class is to provide a common interface for updating any device running the Kinetis <a class="el" href="classblfwk_1_1_bootloader.html" title="Represents the host bootloader. ">Bootloader</a> from several different file formats. </p>
</div><h2 class="groupheader">Member Function Documentation</h2>
<a class="anchor" id="a50a5dca97c2530313cf23ad14b420777"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void Updater::eraseAllUnsecure </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Erase all flash blocks and release MCU security. </p>
<dl class="exception"><dt>Exceptions</dt><dd>
  <table class="exception">
    <tr><td class="paramname">std::runtime_error</td><td>Raised if the <a class="el" href="classblfwk_1_1_flash_erase_all_unsecure.html" title="Represents the bootloader Flash Erase All Unsecure command. ">FlashEraseAllUnsecure</a> command does not return success. Raised if the <a class="el" href="classblfwk_1_1_flash_erase_all_unsecure.html" title="Represents the bootloader Flash Erase All Unsecure command. ">FlashEraseAllUnsecure</a> command is not supported. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a854ab7c72d51fda1ee02a5412e5b9aa5"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void Updater::eraseFlashAll </td>
          <td>(</td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>memoryId</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p><a class="el" href="classblfwk_1_1_execute.html" title="Represents the bootloader Execute command. ">Execute</a> the <a class="el" href="classblfwk_1_1_flash_erase_all.html" title="Represents the bootloader Flash Erase All command. ">FlashEraseAll</a> bootloader command. </p>
<dl class="exception"><dt>Exceptions</dt><dd>
  <table class="exception">
    <tr><td class="paramname">std::runtime_error</td><td>Thrown if an error occurred while sending the <a class="el" href="classblfwk_1_1_flash_erase_all.html" title="Represents the bootloader Flash Erase All command. ">FlashEraseAll</a> bootloader command. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a1928c1fbff8fca3e32c40f4242d23dae"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void Updater::eraseFlashRegion </td>
          <td>(</td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>start</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>length</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p><a class="el" href="classblfwk_1_1_execute.html" title="Represents the bootloader Execute command. ">Execute</a> the <a class="el" href="classblfwk_1_1_flash_erase_region.html" title="Represents the bootloader Flash Erase command. ">FlashEraseRegion</a> bootloader command. </p>
<dl class="exception"><dt>Exceptions</dt><dd>
  <table class="exception">
    <tr><td class="paramname">std::runtime_error</td><td>Thrown if an error occurred while sending the FlashEraseRegion(start, length) bootloader command.</td></tr>
  </table>
  </dd>
</dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">start</td><td>The beginning address of the memory region to be erased.</td></tr>
    <tr><td class="paramname">length</td><td>The length in bytes of the memory region to be erased. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a3abbca2423b22adbf9d99f0be190d579"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">status_t Updater::flashFirmware </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>filename</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>base_address</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Program flash on the device. </p>
<dl class="exception"><dt>Exceptions</dt><dd>
  <table class="exception">
    <tr><td class="paramname">std::runtime_error</td><td>Raised if the file could not be opened successfully.</td></tr>
  </table>
  </dd>
</dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">filename</td><td>The file to program into the device. </td></tr>
    <tr><td class="paramname">base_address</td><td>The address on the device where the file wiill be written. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ae65090535c767f3fc948ba737d37ee52"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">uint32_t blfwk::Updater::getFlshSize </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>get Device's flash size. </p>
<dl class="section return"><dt>Returns</dt><dd>the value of flash size. </dd></dl>

</div>
</div>
<a class="anchor" id="ab4ea7e9fbbbfa1a5116b4d167d2b348a"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">uint32_vector_t Updater::getProperty </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structblfwk_1_1property__t.html">property_t</a>&#160;</td>
          <td class="paramname"><em>tag</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>get Device's property by using get-property command. </p>
<dl class="exception"><dt>Exceptions</dt><dd>
  <table class="exception">
    <tr><td class="paramname">std::runtime_error</td><td>Thrown if an error occurred while sending the GetProperty(property) bootloader command.</td></tr>
  </table>
  </dd>
</dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">property</td><td>tag</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>vector of the response values. </dd></dl>

</div>
</div>
<a class="anchor" id="a4d96fbd3cac558d611f69c7b878513fd"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">uint32_t blfwk::Updater::getSectorSize </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>get Device's flash sector size. </p>
<dl class="section return"><dt>Returns</dt><dd>the value of sector size. </dd></dl>

</div>
</div>
<a class="anchor" id="ada1ce18df25c54bd13e5ec13d686ca49"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool Updater::isCommandSupported </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structblfwk_1_1cmd__t.html">cmd_t</a> &amp;&#160;</td>
          <td class="paramname"><em>command</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Checks if Kinetis <a class="el" href="classblfwk_1_1_bootloader.html" title="Represents the host bootloader. ">Bootloader</a> device supports a given command. </p>
<dl class="exception"><dt>Exceptions</dt><dd>
  <table class="exception">
    <tr><td class="paramname">std::runtime_error</td><td>Thrown if an error occurred while sending the GetProperty(kProperty_AvailableCommands) bootloader command.</td></tr>
  </table>
  </dd>
</dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">command</td><td>The command to check.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>true if command is supported, false if not. </dd></dl>

</div>
</div>
<a class="anchor" id="a4ea60db0dec85bba7f3231daea7b342a"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void Updater::programOnce </td>
          <td>(</td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>index</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>byteCount</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">string&#160;</td>
          <td class="paramname"><em>data</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p><a class="el" href="classblfwk_1_1_execute.html" title="Represents the bootloader Execute command. ">Execute</a> the <a class="el" href="classblfwk_1_1_flash_program_once.html" title="Represents the bootloader Flash Program Once command. ">FlashProgramOnce</a> bootloader command. </p>
<dl class="exception"><dt>Exceptions</dt><dd>
  <table class="exception">
    <tr><td class="paramname">std::runtime_error</td><td>Thrown if an error occurred while sending the <a class="el" href="classblfwk_1_1_flash_erase_all.html" title="Represents the bootloader Flash Erase All command. ">FlashEraseAll</a> bootloader command.</td></tr>
  </table>
  </dd>
</dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">index</td><td>The index of a specific program once field.</td></tr>
    <tr><td class="paramname">byteCount</td><td>The length in bytes of a specific program once field.</td></tr>
    <tr><td class="paramname">data</td><td>The 8/16 hex digitals to write. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a48551f48ea23daff01f931c0196474de"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void blfwk::Updater::registerCallback </td>
          <td>(</td>
          <td class="paramtype">void(*)(int, int, int)&#160;</td>
          <td class="paramname"><em>callback</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool *&#160;</td>
          <td class="paramname"><em>abort</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Set callback for progress and abort control. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">callback</td><td>The function to callback with the progress data. </td></tr>
    <tr><td class="paramname">abort</td><td>The variable used for abort phase control. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ac521d144b59ae9d448097c0d79c8a791"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void blfwk::Updater::setCallback </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classblfwk_1_1_updater.html#a5bf1e93496727ffe94e232d37ccd262d">progress_callback_t</a>&#160;</td>
          <td class="paramname"><em>callback</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Set the user-defined function to call on progress events. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">callback</td><td>The function to callback with the progress data. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a0c21eea1ab3f9571863f191aff972505"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void Updater::unlock </td>
          <td>(</td>
          <td class="paramtype">string&#160;</td>
          <td class="paramname"><em>backdoor_key</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Release security using BackdoorKey. </p>
<dl class="exception"><dt>Exceptions</dt><dd>
  <table class="exception">
    <tr><td class="paramname">std::runtime_error</td><td>Raised if the <a class="el" href="classblfwk_1_1_flash_security_disable.html" title="Represents the bootloader Flash Security Disable command. ">FlashSecurityDisable</a> command does not return success. Raised if the <a class="el" href="classblfwk_1_1_flash_security_disable.html" title="Represents the bootloader Flash Security Disable command. ">FlashSecurityDisable</a> command is not supported. Raised if the parameter is illegal </td></tr>
  </table>
  </dd>
</dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">backdoor_key</td><td>The 16 hex digitals used to release the security </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="af124c4ded6af95b694cebe0d8d7c2230"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void Updater::writeMemory </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classblfwk_1_1_data_source_1_1_segment.html">DataSource::Segment</a> *&#160;</td>
          <td class="paramname"><em>segment</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p><a class="el" href="classblfwk_1_1_execute.html" title="Represents the bootloader Execute command. ">Execute</a> the write-memory bootloader command. </p>
<dl class="exception"><dt>Exceptions</dt><dd>
  <table class="exception">
    <tr><td class="paramname">std::runtime_error</td><td>Thrown if an error occurred while sending the WriteMemory(segment) bootloader command.</td></tr>
  </table>
  </dd>
</dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in,out]</td><td class="paramname">segment</td><td>The DatSource::Segment that represents the data to be written to the device. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a2acb3e081f988d718fa4a816d2b66e08"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void Updater::writeMemory </td>
          <td>(</td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>address</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const uchar_vector_t &amp;&#160;</td>
          <td class="paramname"><em>data</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p><a class="el" href="classblfwk_1_1_execute.html" title="Represents the bootloader Execute command. ">Execute</a> the write-memory bootloader command. </p>
<dl class="exception"><dt>Exceptions</dt><dd>
  <table class="exception">
    <tr><td class="paramname">std::runtime_error</td><td>Thrown if an error occurred while sending the WriteMemory(vector&lt;uint8_t) bootloader command.</td></tr>
  </table>
  </dd>
</dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">data</td><td>A vector&lt;uchar&gt; refernce that contains the data to be written to the device. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">address</td><td>The address on the device where the data will be written. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<hr/>The documentation for this class was generated from the following files:<ul>
<li><a class="el" href="_updater_8h_source.html">Updater.h</a></li>
<li>Updater.cpp</li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="navelem"><b>blfwk</b></li><li class="navelem"><a class="el" href="classblfwk_1_1_updater.html">Updater</a></li>
    <li class="footer">Generated on Mon Mar 7 2016 16:49:51 for Kinetis Bootloader Host by
    <a href="http://www.doxygen.org/index.html">
    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.11 </li>
  </ul>
</div>
</body>
</html>
